/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Mail;

import java.io.Serializable;
import java.util.ArrayList;

/**
 *
 * @author Lab-214-21
 */
public class ListaMensajes implements Serializable {

    private ArrayList<Message> lista;
    private ArrayList<Message> listaLeidos;

    public ListaMensajes() {
        lista = new ArrayList<Message>();
        listaLeidos = new ArrayList<>();
    }

    public ListaMensajes(ArrayList<Message> lista, ArrayList<Message> listaLeido) {
        this.lista = lista;
        this.listaLeidos = listaLeido;
    }

    /**
     * Recupera todos los mensajes que se encuentran almacenados
     *
     * @return array de mensajes
     */
    public Message[] obtenerMensajes() {
        Message[] mensajes = new Message[lista.size()];
        for (int i = 0; i < lista.size(); i++) {
            mensajes[i] = lista.get(i);
        }
        return mensajes;
    }
    /**
     * Recupera todos los mensajes que han sido leidos
     *
     * @return array de mensajes
     */
    public Message[] obtenerMensajesLeidos() {
        Message[] mensajes = new Message[listaLeidos.size()];
        for (int i = 0; i < listaLeidos.size(); i++) {
            mensajes[i] = listaLeidos.get(i);
        }
        return mensajes;
    }
    /**
     * Dice la cantidad de mensajes que hay almacenados
     *
     * @return
     */
    public int longitud() {
        return lista.size();
    }
    /**
     * Dice la cantidad de mensajes leidos
     *
     * @return
     */
    public int longitudLeido() {
        return listaLeidos.size();
    }    

    /**
     * Retorna el mensaje en una posicion deseada
     *
     * @param posicion
     * @return Mensaje en la posicion que se solicito
     */
    public Message obtenerMensaje(int posicion) {
        return lista.get(posicion);
    }
    
    /**
     * Retorna el mensaje en una posicion deseada
     *
     * @param posicion
     * @return Mensaje en la posicion que se solicito
     */
    public Message obtenerMensajeLeido(int posicion) {
        return listaLeidos.get(posicion);
    }    

    /**
     * Inserta el mensaje en la lista de mensajes
     *
     * @param msj
     */
    public void add(Message mensaje) {
        lista.add(mensaje);
    }
    public void remove(Message msj){
        lista.remove(msj);
    }
    
}
